package com.star.baseConvert;

import java.util.HexFormat;

public class HexConvert {

    public static void main(String[] args) {

        // 将数字转换为16进制
        System.out.println(Integer.toHexString(16));
        // 将数字转换为16进制并在前边补充0
        System.out.println(String.format("%02x", 11));
        // 将16进制转换为数字
        System.out.println(Integer.parseInt("11", 16));

        // 将字符串转换成16进制数组
        String str = "hello world, 你好";
        byte[] bytes = str.getBytes();
        for (byte b : bytes) {
            System.out.print(Integer.toHexString(b) + " ");
        }
        // 将16进制数组转换成字符串
        System.out.println("\n");
        System.out.println(new String(bytes));
        // 将16进制转换为一个char
        System.out.println("这应该是个" + (char) Integer.parseInt("20", 16) + "空格");
        System.out.println("这应该是个" + (char) Integer.parseInt(Integer.toHexString(44), 16) + "逗号");

        // 将一个字节的16进制数字转换为byte
        System.out.println((byte) Integer.parseInt("F1", 16));

        // 使用工具类将多个16进制的字符串转换为byte[]
        String stringStart = "7E FF 06 08 00 00 01 FE F2 EF";
        byte[] startCommand = {0x7E, (byte) 0xFF, 0x06, 0x08, 0x00, 0x00, 0x01, (byte) 0xFE, (byte) 0xF2, (byte) 0xEF};
        String stringEnd = "7E FF 06 19 00 00 01 FE E1 EF";
        byte[] endCommand = HexFormat.ofDelimiter(" ").parseHex(stringEnd);


    }
}
